package com.swordget.service;

import com.swordget.entity.ColumnDesign;

import java.util.List;

/**
 * @Author: David
 * @Date: Created in 15:34 2020/4/8
 * @Description: 表结构服务，
 * 用于管理系统创建的表结构
 * @Modified By:
 * @Version:
 */
public interface TableDefinitionService {


    /**
     * 获取表结构
     * @param tableId 表标识
     * @param withHidden 是否包含隐藏列
     * @param withBusiness
     * @return
     */
    List<String> getColumns(String tableId, boolean withHidden, boolean withBusiness);


    /**
     * 获取表结构类型
     * @param tableId 表标识
     * @param withHidden 是否包含隐藏列
     * @param withBusiness
     * @return
     */
    List<String> getColumnTypes(String tableId, boolean withHidden, boolean withBusiness);

    /**
     * 获取表结构的注释
     * @param tableId 表标识
     * @param withHidden 是否包含隐藏列
     * @param withBusiness
     * @return
     */
    List<String> getCommons(String tableId, boolean withHidden, boolean withBusiness);

    /**
     * 表的定义是否存在，是否是系统新建的表
     * @param tableId
     * @return 存在 true 否 false
     */
    String isExists(String tableId);

    /**
     * 获取所有的列结构信息
     * @return
     * @param tableId
     * @param b
     */
    List<ColumnDesign> getColumnDesigns(String tableId, boolean withHidden, boolean withBusiness);

    /**
     * 获取校验文件位置
     * @param tableId 表标识
     * @return
     */
    String getCheckFilePath(String tableId);


    /**
     * 获取表名
     * @param loginId
     * @param tableId
     * @return
     */
    String getTableName(String loginId, String tableId);

    /**
     * 获取表中文名
     * @param loginId
     * @param tableId
     * @return
     */
    String getTableComment(String loginId, String tableId);

}
